package com.cfpl.admin_service.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cfpl.admin_service.service.VegetableVarietyService;
import com.cfpl.project_common.enums.CodeEnum;
import com.cfpl.project_common.exception.BusException;
import com.cfpl.project_common.pojo.Admin;
import com.cfpl.project_common.pojo.VegetableVariety;
import com.cfpl.admin_service.mapper.VegetableVarietyMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.Serializable;
import java.util.List;

/**
* @author 14720
* @description 针对表【vegetable_variety(果蔬种类表)】的数据库操作Service实现
* @createDate 2023-10-10 11:09:53
*/
@Service
public class VegetableVarietyServiceImpl extends ServiceImpl<VegetableVarietyMapper, VegetableVariety>
    implements VegetableVarietyService {

    @Autowired
    private VegetableVarietyMapper vegVarietyMapper;

    /**
     * 添加果蔬种类
     */
    @Override
    public void addVegetableVariety(VegetableVariety vegetableVariety) {
        vegVarietyMapper.insert(vegetableVariety);
    }
    /**
     * 根据id查询果蔬种类
     */
    @Override
    public VegetableVariety queryVegetableVarietyById(Long id) {
        return vegVarietyMapper.selectById(id);
    }

    /**
     * 根据ID删除果蔬种类
     * @param id
     */
    @Override
    public void removeVegetableVarietyById(Long id) {
        vegVarietyMapper.deleteById(id);
    }

    /**
     * 分页查询查询果蔬种类对象
     * @param currentPage 当前页
     * @param pageSize  每页条数
     * @return 分页对象 eg: 根据种类名进行模糊查询
     */
    @Override
    public Page<VegetableVariety> queryPage(int currentPage, int pageSize, String condition) {
        LambdaQueryWrapper<VegetableVariety> queryWrapper = new LambdaQueryWrapper<>();
        if (condition != null){
            queryWrapper.eq(VegetableVariety::getVarietyName,condition);
        }
        return vegVarietyMapper.selectPage(new Page<>(currentPage,pageSize),queryWrapper);
    }

    /**
     * 更新一条果蔬种类对象
     * @param vegVariety  新输入的果蔬种类对象
     */
    @Override
    public void updateVegVariety(VegetableVariety vegVariety) {
        vegVarietyMapper.updateById(vegVariety);
    }

    /**
     * 功能描述：批量删除果蔬种类
     * @param Ids   多个果蔬种类id
     */
    @Override
    public void deleteBatchByIds(List<Long> Ids) {
        if (Ids == null || Ids.size() < 1) {
            throw new BusException(CodeEnum.PARAMETER_ERROR);
        }
        vegVarietyMapper.deleteBatchIds(Ids);
    }

    /**
     * 查询果蔬种类集合
     */
    @Override
    public List<VegetableVariety> queryVegetableVarietyList() {
        return vegVarietyMapper.selectList(null);
    }

}




